Content-based networks are described in A Carzaniga, M. J. Rutherford, A. L. Wolf, A routing scheme for content-based networking, Department of Computer Science, University of Colorado, June 2003, the contents of which are incorporated herein by reference.
In Extensible Markup Language (XML) routing, a network of XML routers exists as an overlay on top of a traditional IP routed network. The XML routers communicate with each other via Transmission Control Protocol (TCP) sockets. A socket in this context is an endpoint of a two-way communication link between two programs running on the network. These TCP sockets are formed between XML routers that are considered “neighbors”. The neighbor relationships are created by the network administrator, by configuring the IP address and TCP port number of the adjacent XML router. The communication path (i.e. TCP socket) between neighbors is named a “static XML link”.
FIG. 1 shows a sample content routed network 1. The network 1 consists of a plurality of publishers 2, 3 and 4, a plurality of subscribers 5, 6 and 7, 16 and a plurality of content routers 8, 9, 10, and 11. A content router is a digital communications networking device which forwards content based on inspection of the contents of a message or document, rather than on an explicit destination address in the networking header of a packet or frame. An example of such a device is the XCR 3200 XML content router from Solace Systems, Inc. A publisher is a computer, user or device that can insert content into the network. Another name commonly used in the literature is an event source or a producer. A subscriber is a computer, user or device that has expressed interest in some specific content. Another name commonly used in the literature is event displayers or consumers. In network 1, routers 8 and 9 are neighbors, via the static XML link 12. Similarly, router 8 and router 11 are neighbors via static link 15, routers 9 and 10 are neighbors via static link 13, and routers 10 and 11 are neighbors via static link 14.
The XML Link State Protocol (XLSP) is a link state protocol designed specifically for XML routed networks. It operates between XML routers, and is used to discover and resolve the routed topology consisting of XML routers and XML static links. The XML Subscription Management Protocol (XSMP) is used to propagate and manage content subscriptions throughout the XML routed topology. After subscription information has been propagated, the XSMP utilizes the topology discovered by the XLSP to create a “subscription tree”. The subscription tree defines the path that XML documents will take through the network from a given publisher to a set of subscribers. This subscription tree always traverses a set of XML routers and XML static links discovered by the XLSP. XLSP and XSMP are fully described in co-filed application Ser. No. 60/530,615, the contents of which are incorporated herein by reference.
For information on XML, refer to “Extensible Markup Language (XML) 1.0 (Third Edition)”, W3C Recommendation Feb. 4, 2004, W3C (World Wide Web consortium) and “Extensible Markup Language (XML) 1.1”, W3C Recommendation Apr. 15, 2004, W3C. For content routing with XML, an example of suitable subscription syntax is XML Path Language (XPath) (refer to reference “XML Path Language (XPath) Version 1.0”, W3C Recommendation Nov. 16, 1999, W3C (Word Wide Web Consortium)).
The methods described above allow the network administrator to build a highly scalable, efficient and robust XML routed network. However, each XML router incurs delay and in some circumstances may present a performance bottleneck.